package buffer1;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;

/*练习五:对象的序列化,对象输出流的使用
        描述:
        定义一个学生类，成员变量有姓名，年龄，性别，提供setters和getters方法以及构造方法
        定义一个测试类，在测试类创建多个学生对象保存到集合中，然后将集合存储到当前项目根目录下的stus.txt文件中。
       */
public class Test14 {
    public static void main(String[] args)throws  Exception {
        BufferedWriter bw = new BufferedWriter(new FileWriter("IO\\copy"));//创建字符缓冲输出流对象
    ArrayList<Student> list = new ArrayList<>();//创建集合对象存储学生信息
        list.add(new Student("周瑜", "36"));//将学生对象存储到集合中
        list.add(new Student("刘备", "37"));//将学生对象存储到集合中
        for (Student student : list) {//遍历集合得到每一个学生对象
        StringBuilder sb = new StringBuilder();//创建StringBulider对象
        sb.append(student.getName()).append("||").append(student.getAge());//使用apend方法进行拼接
        bw.write(sb.toString());//使用字符输出流进行写入并将StringBuilder对象转化为String 对象
        bw.newLine();//换行
        bw.flush();//刷新
    }
        bw.close();//关闭资源
    BufferedReader br = new BufferedReader(new FileReader("IO\\copy"));//创建字符缓冲输入流对象读取指定文件目录下 的数据
    String line;//定义读取行数变量

        while ((line = br.readLine()) != null) {//使用while循环进行读取数据
        System.out.println(line);//因为读取的String类型的数据所以可以直接输出
    }

} }
